/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is Forte for Java, Community Edition. The Initial * Developer of the Original Code is Sun Microsystems, Inc. Portions * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.search; import java.util.*; import org.openide.*; import org.openidex.search.*; import org.netbeans.modules.search.types.*; /** * Service types registry routines. * * @author pkuzel * @version */ public class Registry extends Object { /** Creates new Registry */ public Registry() { } /** * @param list of classes that */ public static void reorderBy(Class[] types) { ServiceType.Registry registry = TopManager.getDefault().getServices(); Vector registered = new Vector(registry.getServiceTypes()); List newList = new ArrayList(); for ( int i=0; i< types.length; i++ ) { Iterator it = new Vector(registered).iterator(); while (it.hasNext()) { Object next = it.next(); if (types[i].isInstance(next)) { newList.add(next); registered.remove(next); } } } // add rest of them in original order newList.addAll(registered); registry.setServiceTypes(newList); } public static boolean exist(SearchType obj) { ServiceType.Registry registry = TopManager.getDefault().getServices(); Enumeration en = registry.services(obj.getClass()); while (en.hasMoreElements()) { SearchType next = (SearchType) en.nextElement(); if (next.getName().equals(obj.getName())) return true; } return false; } /***/ public static void append(SearchType obj) { ServiceType.Registry registry = TopManager.getDefault().getServices(); List result = registry.getServiceTypes(); result.add(obj); registry.setServiceTypes(result); } /** * Remove a service matching template. * @param obj service template - used name and class */ public static void remove(SearchType obj) { ServiceType.Registry registry = TopManager.getDefault().getServices(); List result = registry.getServiceTypes(); ArrayList ret = new ArrayList(); Iterator it = result.iterator(); while (it.hasNext()) { ServiceType next = (ServiceType) it.next(); if ( ! next.getName().equals(obj.getName()) || ! next.getClass().equals(obj.getClass()) ) ret.add(next); } registry.setServiceTypes(ret); } /** * @param args the command line arguments */ public static void main (String args[]) { reorderBy(new Class[] {ObjectNameType.class, FullTextType.class} ); append(new FullTextType()); } public static void list(Iterator it) { System.err.println("Listing: "); while(it.hasNext()) { System.err.println(it.next().toString()); } } } /* * Log * 3 Gandalf 1.2 1/5/00 Petr Kuzel Margins used. Help * contexts. * 2 Gandalf 1.1 1/4/00 Petr Kuzel Bug hunting. * 1 Gandalf 1.0 12/23/99 Petr Kuzel * $ */